package model

import (
"time"
)

//区域模型
type RdArea struct {
	Areaid    int       `xorm:"not null pk INT(11)"`
	Areano    string    `xorm:"comment('区域编号') VARCHAR(255)"`
	Areaname  string    `xorm:"comment('区域名称') VARCHAR(255)"`
	Areadesc  string    `xorm:"comment('区域说明') VARCHAR(255)"`
	Addtime   time.Time `xorm:"comment('区域添加时间') DATETIME"`
	Longitude float64   `xorm:"comment('区域中心经度') DOUBLE(255)"`
	Lanitude  float64   `xorm:"comment('区域中心维度') DOUBLE(255)"`
}
//统计模型
type RdCycle struct {
	Id        int       `xorm:"not null pk autoincr INT(11)"`
	Hsc       string    `xorm:"not null default '' comment('路口代码') CHAR(20)"`
	Deviceno  string    `xorm:"not null default '' comment('设备编号') index CHAR(20)"`
	Timestamp time.Time `xorm:"comment('上报时间') index DATETIME"`
	Cycle     int       `xorm:"not null default 0 comment('统计周期（s）') INT(11)"`
	Meansno   int       `xorm:"not null default 0 comment('检测线编号') INT(11)"`
	Laneno    int       `xorm:"not null default 0 comment('车道编号') INT(11)"`
	Coilno    int       `xorm:"not null default 0 comment('线圈编号') INT(11)"`
	Volume    int       `xorm:"not null default 0 comment('不区分车型机动车总流量') INT(11)"`
	Volume1   int       `xorm:"not null default 0 comment('行人流量') INT(11)"`
	Volume2   int       `xorm:"not null default 0 comment('非机动车流量') INT(11)"`
	Volume3   int       `xorm:"not null default 0 comment('小车流量') INT(11)"`
	Volume4   int       `xorm:"not null default 0 comment('中车流量') INT(11)"`
	Volume5   int       `xorm:"not null comment('大车流量') INT(11)"`
	Pcu       float32   `xorm:"not null default 0 comment('交通当量（pcu）') FLOAT"`
	Avspeed   float32   `xorm:"not null comment('平均速度（km/h）') FLOAT"`
	Occupancy float32   `xorm:"not null default 0 comment('时间占有率（%）') FLOAT"`
	Headway   float32   `xorm:"not null default 0 comment('平均车头时距（s）') FLOAT"`
	Gap       float32   `xorm:"not null default 0 comment('平均车身间距（s）') FLOAT"`
	Speed85   int       `xorm:"not null default 0 comment('85 位速度（km/h）') INT(11)"`
}
//设备模型
type RdDevice struct {
	Id        int     `xorm:"not null pk autoincr INT(11)"`
	Deviceno  string  `xorm:"not null comment('设备编号') CHAR(20)"`
	Type      string  `xorm:"not null comment('设备类型、型号') VARCHAR(255)"`
	Desc      string  `xorm:"not null comment('设备说明') VARCHAR(255)"`
	Ip        string  `xorm:"not null comment('设备IP') CHAR(30)"`
	Version   string  `xorm:"not null comment('设备版本') VARCHAR(50)"`
	Location  string  `xorm:"not null comment('安装点位') VARCHAR(255)"`
	Status    int     `xorm:"not null default 0 comment('设备状态：0离线，1在线，-1故障，-2维修中') TINYINT(1)"`
	Longitude float64 `xorm:"comment('经度') DOUBLE(255)"`
	Latitude  float64 `xorm:"comment('纬度') DOUBLE(255)"`
	Areano    string  `xorm:"comment('区域编号') VARCHAR(255)"`
}
//排队模型
type RdQueue struct {
	Id        int       `xorm:"not null pk autoincr INT(11)"`
	Deviceno  string    `xorm:"not null comment('设备编号') index CHAR(20)"`
	Timestamp time.Time `xorm:"comment('时间戳') index DATETIME"`
	Laneno    int       `xorm:"not null default 0 comment('车道编号') INT(11)"`
	QueueLen  int       `xorm:"not null default 0 comment('排队长度（m）') INT(11)"`
	QueueHead int       `xorm:"not null default 0 comment('排队第一辆车距离停止线距离（m）') INT(11)"`
	QueueTail int       `xorm:"not null default 0 comment('排队最后一辆车距离停止线距离（m）') INT(11)"`
	QueueNum  int       `xorm:"not null default 0 comment('排队车辆数（辆）') INT(11)"`
}
//用户模型
type RdUser struct {
	Uid           int       `xorm:"not null pk autoincr INT(11)"`
	Uname         string    `xorm:"comment('用户名') VARCHAR(255)"`
	Password      string    `xorm:"comment('密码') VARCHAR(255)"`
	Utype         int       `xorm:"comment('用户类型/权限') TINYINT(4)"`
	Registetime   time.Time `xorm:"comment('注册时间') DATETIME"`
	Lastlogintime time.Time `xorm:"comment('最近登录时间') DATETIME"`
	Logincount    int       `xorm:"comment('登录次数') INT(11)"`
	Addtime       time.Time `xorm:"comment('数据添加时间') DATETIME"`
}
